from openpyxl import load_workbook
from zhipuai import ZhipuAI
import re

# client = ZhipuAI(api_key="3051e086b4b8bae6ff5c687b8a00781b.BFreu76ltCPcJZur")  # 9203号的key
client = ZhipuAI(api_key="8b3359e0b89a5aae255799127dc07c14.U5YkgInMqVtnqnQv")  # 1774号的key


def title(title_str):
    response = client.chat.completions.create(
        model="GLM-4-Flash",  # 请填写您要调用的模型名称
        messages=[
            {"role": "user","content": f"你是一名资深的亚马逊女士服装类目文案专家，f{title_str}这个是你的产品资料"},
            {"role": "user","content": f"要求：1、吸引人的注意力，整个标题语言生动有感染力能激发消费者的购买意欲。2、字数要求在40至55个字符。3、不可以出现价格，也不可能出现非英文符号。4、使用英文"},
            {"role": "user", "content": "根据资料和要求写一个产品标题，保存到变量zyi"},

        ],
    )
    response_str = response.choices[0].message.content
    print("原参数为：",response.choices[0].message)
    print("返回结果为：",response_str)
    regex =  r'zyi = "(.*?)"'
    # 使用re.search查找匹配的字符串
    match = re.search(regex,response_str, re.DOTALL)

    #如果找到匹配项，则提取数组内容
    if match:
        zyi_value = match.group(1)
        print("产品标题为：",zyi_value)
        return zyi_value
    else:
        print("没有找到匹配的产品标题为")
        return None

def dinam(dict_str):
    response = client.chat.completions.create(
        model="GLM-4-Flash",  # 请填写您要调用的模型名称
        messages=[
            {"role": "user", "content": f"你现在是一个服装卖家，f{dict_str}这个是你的产品资料"},
            {"role": "user", "content": "根据资料写卖点一：面料，卖点二：设计卖点，卖点三：搭配，卖点四：场合，卖点五：服装护理"},
            {"role": "user", "content": "把这五个卖点每个都翻译成英文并保存在zyi数组中，以Python数组形式返回，不要注释和多维数组"},
        ],
    )
    response_str = response.choices[0].message.content
    print("（卖点）原参数为：", response.choices[0].message)
    regex = r"zyi = \[(.*?)\]"
    # 使用re.search查找匹配的字符串
    match = re.search(regex, response_str, re.DOTALL)

    # 如果找到匹配项，则提取数组内容
    if match:
        list_str = match.group(1)

        # # 移除字符串中的多余空格和换行符
        list_str = re.sub(r'\s+', ' ', list_str).strip()
        # 将字符串转换为Python数组
        zyi_list = [item.strip("") for item in list_str.split('", "')]
        print("数组为：", zyi_list)
        return zyi_list
    else:
        print("没有找到匹配的数组")
        return None


def zyi():
    file101 = r"\\192.168.50.101\沃尔玛铺货资料a\铺货资料文件\信息表\跨境产品信息表(上衣).xlsx"
    wb = load_workbook(file101)
    # 选择工作表
    ws = wb["产品信息"]
    # 获取工作表的最大列数
    max_column = ws.max_column


    row_count = 5

    # 循环读取行，假设我们从第二行开始读取，且只读取有数据的行
    for row in ws.iter_rows(min_row=6, values_only=True):
        row_count = row_count + 1
        if row[-4] != None:
            continue
        if row[0] is not None:

            zyi_value = title(title_str =row[-5])
            zyi_list = dinam(dict_str=row[-5])
            ws["AI{}".format(row_count)] = "AAAA " +str(zyi_value)
            ws["AJ{}".format(row_count)] = str(zyi_list)
            wb.save(file101)






if __name__ == '__main__':
    zyi()